6
תגובות
איך לשמור על כך שתהיה כמות הטאבים המתאימה לטקסט HTML שמודפס באמצעות PHP?

לדוגמה, נניח שיש:
<head>
    <meta charset="utf-8" />

ואז אני מדפיס טקסט באמצעות PHP.
במקום לכתוב:
echo "\t<blbbla.....";

יש איזשהו משהו אחר שאני יכול לכתוב כדי שתהיה כמות הטאבים הנכונה (או בכלל לא, אם צריך)?
כי בהמשך זה נהיה מסובך יותר. למשל,
echo "\t\t\t<table>\n\t\t\t\t<tr>\n\t\t\t\t\t<th>blablabla</th>\n\t\t\t\t\t";

6 תשובות

avatar ענה iiddaannyy ב 11 לאוגוסט 2012 #

אני שומר את כל החלקים של ה-output במסד, ככה ששם אני כותב את הטקסט בצורה מובנת, עם טאבים וירידות שורה.
או שתעשה ככה, או שאתה יכול לבנות איזה משהו שיקבל html בלי ירידות שורה ובלי טאבים, ויבצע את ירידות השורה ואת ההזחות לבד.

avatar ענה nocksh ב 11 לאוגוסט 2012 #

להכניס לתג <pre>

avatar ענה Michael ב 11 לאוגוסט 2012 #

או, שאל תדפיס עם PHP בכלל. תסגור את הסקריפט, תכתוב את הקוד שאתה צריך, תפתח מחדש.
ואם אתה צריךף לשים משתנה באמצע, פשוט תעשה איפה ש אתה צריך <?=$var?> וזהו.
לדוגמא:

<?php if(true == true): ?> html, whatver <?php endif; ?>

avatar ענה OrelBeY ב 11 לאוגוסט 2012 #

תודה. :)
אני אלך על השיטה שכתב מיכאל. ^^

avatar ענה xzxxx7 ב 11 לאוגוסט 2012 #

השיטה של מיכאל הכי יעילה, לשמור במסד זה קצת בזבוז.
בכל מקרה: למה אתה צריך ירידות שורה וטאבים? הדפדפן יודע לקרוא את הHTML גם בלי. ובאתרים גדולים עדיף בכלל לא להוסיף תאבים וירידות שורה, זה חוסך מקום בגודל הקובצים.
אם בכל מקרה אתה מעדיף להשתמש בירודות שורה וטאבים אתה צריך לתת ירידת שורה אחרי הסגיה של הסקריפט.
לדוגמא:

<?php
  $head_tags = array();
  $head_tags[] = '<base href="/" />';
  $head_tags[] = '<meta charset="utf-8" />';
  $head_tags[] = '<meta name="description" content="שאלה טאבים בטקסט שמודפס באמצעות PHP" />';
  $head_tags[] = '<meta name="keywords" content="שאלה, עזרה" />';
?>
<!doctype html>
<html>
  <head>
<?php if(isset($head_tags)): foreach($head_tags as $tag): ?>
    <?php echo $tag; ?>

<?php endforeach; endif; ?>
  </head>
  <body>
    <a href="http://phpguide.co.il/q874/%D7%98%D7%90%D7%91%D7%99%D7%9D+%D7%91%D7%98%D7%A7%D7%A1%D7%98+%D7%A9%D7%9E%D7%95%D7%93%D7%A4%D7%A1+%D7%91%D7%90%D7%9E%D7%A6%D7%A2%D7%95%D7%AA+PHP.htm">טאבים בטקסט שמודפס באמצעות PHP | שאלת לימוד PHP</a>
  </body>
</html>

ידפיס ככה:
<!doctype html>
<html>
  <head>
    <base href="/" />
    <meta charset="utf-8" />
    <meta name="description" content="שאלה טאבים בטקסט שמודפס באמצעות PHP" />
    <meta name="keywords" content="שאלה, עזרה" />
  </head>
  <body>
    <a href="http://phpguide.co.il/q874/%D7%98%D7%90%D7%91%D7%99%D7%9D+%D7%91%D7%98%D7%A7%D7%A1%D7%98+%D7%A9%D7%9E%D7%95%D7%93%D7%A4%D7%A1+%D7%91%D7%90%D7%9E%D7%A6%D7%A2%D7%95%D7%AA+PHP.htm">טאבים בטקסט שמודפס באמצעות PHP | שאלת לימוד PHP</a>
  </body>
</html>


אבל:
<?php
  $head_tags = array();
  $head_tags[] = '<base href="/" />';
  $head_tags[] = '<meta charset="utf-8" />';
  $head_tags[] = '<meta name="description" content="שאלה טאבים בטקסט שמודפס באמצעות PHP" />';
  $head_tags[] = '<meta name="keywords" content="שאלה, עזרה" />';
?>
<!doctype html>
<html>
  <head>
<?php if(isset($head_tags)): foreach($head_tags as $tag): ?>
    <?php echo $tag; ?>
<?php endforeach; endif; ?>
  </head>
  <body>
    <a href="http://phpguide.co.il/q874/%D7%98%D7%90%D7%91%D7%99%D7%9D+%D7%91%D7%98%D7%A7%D7%A1%D7%98+%D7%A9%D7%9E%D7%95%D7%93%D7%A4%D7%A1+%D7%91%D7%90%D7%9E%D7%A6%D7%A2%D7%95%D7%AA+PHP.htm">טאבים בטקסט שמודפס באמצעות PHP | שאלת לימוד PHP</a>
  </body>
</html>

ידפיס ככה:
<!doctype html>
<html>
  <head>
    <base href="/" />   <meta charset="utf-8" />    <meta name="description" content="שאלה טאבים בטקסט שמודפס באמצעות PHP" />    <meta name="keywords" content="שאלה, עזרה" /> </head>
  <body>
    <a href="http://phpguide.co.il/q874/%D7%98%D7%90%D7%91%D7%99%D7%9D+%D7%91%D7%98%D7%A7%D7%A1%D7%98+%D7%A9%D7%9E%D7%95%D7%93%D7%A4%D7%A1+%D7%91%D7%90%D7%9E%D7%A6%D7%A2%D7%95%D7%AA+PHP.htm">טאבים בטקסט שמודפס באמצעות PHP | שאלת לימוד PHP</a>
  </body>
</html>


ראה שורה 13 בקוד הראשון לעומת הקוד השניה..
קיצור אני מקווה שהבנת את מה שניסיתי להסביר, שבוע טוב. D:

avatar ענה intval ב 13 לאוגוסט 2012 #

ורק אני קראתי את המדריך על MVC והבנתי שאת תבנית התצוגה עם כל ה html ותגי המטה עדיף בכלל לשמור בנפרד מקוד ה PHP ושם הם נשמרים עם טאבים ורווחים וכל דבר אחר שארצה.

ובדרך כלל אני פשוט עושה ככה:

<?php foreach($posts as $post): ?>
  <div>
    <span><?=e($post->author)?></span>
    <span><?=e($post->time)?></span>
    <div>
      <?=e($post->text)?>
    </div>
  </div>
<?php endforeach;?>

(e זה הקיצור שלי ל htmlSpecialChars)